package cn.itcast.web.cookie;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/*
cookie细节操作:
2.cookie在浏览器中保存多长时间？
  *默认情况下，当浏览器关闭后，Cookie数据被销毁。(再次打开后就找不到cookie中数据)
   即默认情况下cookie是存放在浏览器的内存中的，关闭浏览器其就销毁了数据。(所以称客户端会话技术)
  *有些情况希望浏览器关闭后，数据仍然能够被保存下来，
   这就需要采用持久化存储，使用Cookie对象中的setMaxAge(int seconds)方法，有三种参数表示含义不同:
     1.整数:表示将Cookie数据写到硬盘的文件中。相当于持久化存储。在相应的时间seconds中浏览器可以随便
            打开关闭，当时间一过，该文件就会被销毁。
     2.负数:默认值。即将cookie数据存储在浏览器内存中，浏览器关闭数据就被销毁。
     3.零:代表删除cookie信息，
* */
@WebServlet("/cookieservletDemo4")
public class CookieServletDemo4 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //1.创建Cookie对象
        Cookie cookie=new Cookie("msg","setMaxAge");
        //2.设置cookie的存活时间
        cookie.setMaxAge(30); //将cookie持久化到硬盘，30秒后自动删除cookie文件
        //3.发送Cookie到浏览器
        response.addCookie(cookie);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}
